home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / m2 / cat3src / cat / handlepo.d < prev    next >
Text File  |  1997-10-26  |  3KB  |  75 lines

  1. DEFINITION MODULE handlePool;
  2.  
  3. (*==============================================================*
  4.  * Modul:               Verwaltet Pool von Datenbank-Handles    *
  5.  * Autor:               Johannes G”ttker-Schnetmann             *
  6.  * erstellt am:         09.04.1992                              *
  7.  * letzte Žnderung am:  12.04.1992                              *
  8.  * Version:             1.0                                     *
  9.  * Interne Version:     V#0002                                  *
  10.  *==============================================================*
  11.  
  12.  *----------------------------------------------------------------------------
  13.  * Datum    Vers. Autor  Žnderung (Arbeitsbericht)                            
  14.  *----------------------------------------------------------------------------
  15.  * 09.04.92 0001  JGS    Erste Version
  16.  * 12.04.92 0002  JGS    Erweitertes Listenhandling, flexibler
  17.  *----------------------------------------------------------------------------
  18.  *)
  19.  
  20. IMPORT SYSTEM;
  21. IMPORT Lists;
  22. IMPORT data;
  23.  
  24. (*-- Allgemeine Listenverwaltung ---------------*)
  25.  
  26. PROCEDURE BlankToList(VAR new  : SYSTEM.ADDRESS;
  27.                           size : LONGCARD;
  28.                       VAR list : Lists.List):BOOLEAN;
  29. (* Ein Listenelement an die angegebene Liste anh„ngen *)
  30.  
  31. PROCEDURE FreeOnePtr(ptr  : SYSTEM.ADDRESS;
  32.                      VAR list : Lists.List);
  33.  
  34. PROCEDURE FindEntry(data     : SYSTEM.ADDRESS;
  35.                     condProc : Lists.LCondProc;
  36.                     list     : Lists.List;
  37.                 VAR ptr      : SYSTEM.ADDRESS):BOOLEAN;
  38.  
  39. (*-- Spezielle Datenbankhandleliste ------------*)
  40.  
  41. (* Die Handles fr den lesenden Zugriff auf die Datenbank: *)
  42. (* Es drfen auch noch Flags ge„ndert werden, nicht aber   *)
  43. (* Nachrichten mittels dieser Handles angeh„ngt werden     *)
  44.  
  45. TYPE oneHandlePtr = POINTER TO oneHandleElement;
  46. TYPE oneHandleElement =
  47.        RECORD
  48.          group   : CARDINAL;            (* Gruppennummer *)
  49.          open    : CARDINAL;            (* Anzahl der offenen Fenster dazu *)
  50.          Zugriff : data.OneGroupHandle; (* Zugriffshandle *)
  51.        END;
  52.  
  53. PROCEDURE SearchDataHandle(gruppe : CARDINAL;
  54.                        VAR handle : oneHandlePtr):BOOLEAN;
  55. (* Handle-Liste nach einem Eintrag der Gruppe <gruppe> durchsuchen *)
  56.  
  57. PROCEDURE GetOneDatahandle(gruppe : CARDINAL;
  58.                        VAR handle : oneHandlePtr):BOOLEAN;
  59. (* Erst die bestehende Liste nach schon offenen Handles durchsuchen,
  60.  * falls dort nicht gefunden, versuchen ein neues zu ”ffnen
  61.  *)
  62.  
  63. PROCEDURE FreeOneDataHandle(handle : oneHandlePtr);
  64. (* Nachsehen, ob er noch ben”tigt wird, sonst aus der Liste entfernen *)
  65.  
  66. PROCEDURE InitPool():BOOLEAN;
  67. (* Wird in grin.grinInit aufgerufen, Fehler auch dort angemeckert und braucht *)
  68. (* nicht weiter beachtet zu werden *)
  69.  
  70. PROCEDURE isOneGroupOpen():BOOLEAN;
  71. (* Fragt nach, ob _irgendeine_ Gruppe noch ge”ffnet ist. Insbesondere fr   *)
  72. (* parser.i -> Gruppe offen: Einfgen abbrechen und CAT beenden             *)
  73.  
  74. END handlePool.
  75.